d56f18ce061ec961416f44afd155aa2138df3aa8,src/main/java/com/tesco/mewbase/log/impl/file/FileLog.java,FileLog,start,#,83

Before Change


        } else {
            cf = faf.openBasicFile(currFile);
        }
        return cf.thenApply(bf -> {
            currWriteFile = bf;
            return (Void)null;
        });
    }

    @Override

After Change



    public synchronized CompletableFuture<Void> start() {
        logger.trace("Starting file log " + this);
        if (startRes != null) {
            return startRes;
        }
        loadInfo();
        checkAndLoadFiles();
        File currFile = getFile(fileNumber);
        CompletableFuture<Void> cfCreate = null;
        if (!currFile.exists()) {
            if (fileNumber == 0 && filePos == 0) {
                // This is OK, new log
                logger.trace("Creating new log info file for channel {}", channel);
                saveInfo(true);
                // Create a new first file
                cfCreate = createAndFillFile(getFileName(0));
            } else {
                throw new MewException("Info file for channel {} doesn't match data file(s)");
            }
        }
        final File cFile = currFile;
        // Now open the BasicFile
        CompletableFuture<BasicFile> cf;
        if (cfCreate != null) {
            cf = cfCreate.thenCompose(v -> faf.openBasicFile(cFile));
        } else {
            cf = faf.openBasicFile(currFile);
        }
        startRes = cf.thenAccept(bf -> {
            currWriteFile = bf;
            logger.trace("Opened file log " + this);
        });
        return startRes;
    }